package com.ftg.learn.sercice;

import com.ftg.learn.dto.SalePart;
import com.ftg.learn.entity.SaleEntity;

import java.util.List;
import java.util.Map;

/**
 * @author wangty
 * @date 2022/10/18
 */
public interface ISaleService {

    /**
     * 查看商品全部信息
     * @return
     */
    List<SaleEntity> showAll();

    /**
     * 模糊查询一个参数
     * @param name 商品名称
     * @return
     */
    List<SaleEntity> likeWithName(String name);

    /**
     * 动态模糊查询（可填可不填进行查询）
     * @param name 商品名称
     * @param address 商品地址
     * @return
     */
    List<SaleEntity> likeWithNameAddress(String name, String address);

    /**
     * 分页模糊查询
     * @param page 页数
     * @param limit 一页显示条数
     * @param name 商品名称
     * @param address 商品地址
     * @return
     */
    Map<String, Object> pageWithNameAddress(Integer page, Integer limit, String name, String address);

    /**
     * 按照实例添加
     * @param saleEntity 实例
     * @return
     */
    int addEntity(SaleEntity saleEntity);

    /**
     * 按照dto进行添加
     * @param salePart 部分重要属性
     * @return
     */
    int addDto(SalePart salePart);

    /**
     * 按照实例进行修改
     * @param saleEntity 实例
     * @return
     */
    int updateSaleEntity(SaleEntity saleEntity);

    /**
     * 按照主键进行修改
     * @param saleEntity 实例
     * @param id 主键
     * @return
     */
    int updateSaleEntityWithId(SaleEntity saleEntity, Integer id);

    /**
     * 按照主键删除
     * @param id 主键
     * @return
     */
    int deleteById(Integer id);

    /**
     * 逻辑删除
     * @param id 主键
     * @param flag 判断
     * @return
     */
    int deleteByIdLogic(Integer id, Integer flag);
}
